﻿
namespace Relay.Core.Protocol {
    /// <summary>
    /// Provides an interface to a single remote Relay bounce server connection.
    /// </summary>
    public class RelayBounceConnection {
        #region Fields
        private string _hostName = string.Empty;
        private int _port = 13331;
        private bool _isConnected = false;
        #endregion

        #region Constructor
        /// <summary>
        /// Constructs a new connection to a Relay bounce server at a specified host name and port.
        /// </summary>
        /// <param name="hostName">The host name of the remote bounce server.</param>
        /// <param name="port">The port that the remote bounce server is listening on.</param>
        public RelayBounceConnection(string hostName, int port) {
            _hostName = hostName;
            _port = port;
        }
        #endregion

        #region Properties
        /// <summary>
        /// Gets the host name of the remote bounce server.
        /// </summary>
        public string HostName {
            get { return _hostName; }
        }

        /// <summary>
        /// Gets the port that the remote bounce server is listening on.
        /// </summary>
        public int Port {
            get { return _port; }
            set { _port = value; }
        }

        /// <summary>
        /// Gets the state of the connection to the remote bounce server.
        /// </summary>
        private bool IsConnected {
            get { return _isConnected; }
        }
        #endregion

        #region Public Methods
        public void Connect() {

        }

        public void Disconnect() {

        }
        #endregion
    }
}
